home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
basic
/
smallfnt.zip
/
SMALLFNT.BAS
< prev
next >
Wrap
BASIC Source File
|
1990-02-15
|
2KB
|
55 lines
SUB InitSmallFont (SmallFont%())
OPEN "smallfnt.dat" FOR BINARY AS #1
FOR tmp% = 0 TO 319
GET #1, , SmallFont%(tmp%)
NEXT
CLOSE #1
SmallFont%(320) = &H101 ' cursor position
END SUB
SUB SmallLocate (SmallFont%(), Row%, Column%)
SmallFont%(320) = CVI(CHR$(Column%) + CHR$(Row%))
END SUB
SUB SmallPrint (SmallFont%(), Text$)
REDIM Scroll%(1 TO 8002)
tmp$ = MKI$(SmallFont%(320))
y% = ASC(RIGHT$(tmp$, 1))
x% = ASC(LEFT$(tmp$, 1))
FOR tmp% = 1 TO LEN(Text$)
ch% = ASC(UCASE$(CHR$(ASC(MID$(Text$, tmp%, 1)) AND &H7F)))
IF ch% > 122 THEN ' high ASCII character, convert it
ch% = (ch% - 59) * 5
ELSEIF ch% = 32 THEN ' space
x% = x% + 1
ch% = -1
ELSEIF ch% = 13 THEN ' carriage return
x% = 1
ch% = -1
ELSEIF ch% = 10 THEN ' linefeed
y% = y% + 1
ch% = -1
ELSEIF ch% = 8 THEN ' backspace
IF x% > 1 THEN x% = x% - 1
ch% = -1
ELSE ' low ASCII character, convert it
ch% = (ch% - 33) * 5
END IF
IF ch% >= 0 AND ch% <= 315 THEN
PUT ((x% - 1) * 6, (y% - 1) * 6), SmallFont%(ch%), PSET
x% = x% + 1
END IF
IF x% > 106 THEN ' wrap to next line
x% = 1
y% = y% + 1
END IF
IF y% > 33 THEN ' scroll the screen
GET (0, 6)-(639, 197), Scroll%
PUT (0, 0), Scroll%, PSET
LINE (0, 192)-(639, 197), 0, BF
y% = 33
END IF
NEXT
SmallFont%(320) = CVI(CHR$(x%) + CHR$(y%))
END SUB